package T8;
//Lmabda表达式调用无参无返回值类型的方法：
//在下面的程序代码的注释位置按要求添加代码，
//分别以匿名内部类方式、Lambda表达式方式
//以及Lambda表达式省略方式等3种方式

//定义无参、无返回值的函数式接口
interface Animal {
    void shout();

}

class AnimalDemo {
    // 创建一个动物叫的方法，并传入接口对象Animal作为参数
    public void animalShout(Animal animal) {
        animal.shout();
    }
}

public class LambdaDemo1 {

    public static void main(String[] args) {
        AnimalDemo ad = new AnimalDemo();
        // 匿名内部类方式：
        ad.animalShout(new Animal() {
            @Override
            public void shout() {
                System.out.println("匿名内部类方式：定义无参、无返回值的函数式接口");
            }
        });
        // Lambda表达式方式：
        Animal ad1 = ()->{
            System.out.println("Lambda表达式方式：定义无参、无返回值的函数式接口");
        };
        ad.animalShout(ad1);
        new AnimalDemo().animalShout(ad1);

    }
}
